\documentclass[a4paper]{scrartcl}

\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{float}
\usepackage{pdfpages}
\usepackage{listings}

\setlength{\parindent}{0mm}  % Kein Einzug
\setlength{\parskip}{0.2cm}  % 2mm Abstand zwischen zwei Abs�tzen

\title{PCA - exercise 8}

\author{Steffen Lammel, Matthias Heisler}

\date{\today}

\begin{document}
\lstset{language=VHDL,numbers=left,stepnumber=1}
\maketitle

\section*{N-Body Simulation revisited (Experimente)}
Die Abbildung \ref{fig:all} zeigt die durchschnittliche Ausführungszeit für eine Iteration.
Hierbei wird die Zeit\footnote{Anm: Zur Erzuegung dieser Werte wurde das Programm aus Aufgabe 7.2 verwendet.} die für jede Iteration\footnote{Es wurden 1000 Iterationen verwendet} benötigt wird auf der Y-Achse aufgetragen und die verwendete Anzahl an Threads auf der X-Achse.
Die Abbildung \ref{fig:speed} hingegen stellt den ermittelten Speedup bezogen auf die Single-Thread Ausführung dar. Dabei wurde der Speedup dadurch berechnet, dass die Zeit pro Iteration für die Single-Thread Ausführung durch die der Zeit der jeweils anderen Threadanzahlen geteilt wurde. Daneben enthalten die Tabellen \ref{tab:128} bis \ref{tab:8192} die jeweils dazu gehörenden Messwerte im "Klartext". 

Wie aus beiden Quellen ersichtlich wird liefert die Laufzeit pro Iterationen für 8-Threads eine minimale  Laufzeit bzw. den maximalen Speedup. 
Danach fällt der Speedup wieder ab. Im Falle von 128-Bodys kann sogar eine Verschlechterung der Leistung beobachtet werden. Daraus kann man schließen, dass die Verwendung von 8 Threads in gewisser weise optimal war, da hier die zur Verfügung stehend Ressourcen optimal anscheinend genutzt wurden.

 \begin{figure}
 \includegraphics[width=1\textwidth]{Messungen_alle.png}
 \caption{\label{fig:all} Messungen}
 \end{figure}
  \begin{figure}
 \includegraphics[width=1\textwidth]{Speedup.png}
 \caption{\label{fig:speed} Speedup}
 \end{figure}
 
 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
 1 & 128 &	0.321 &	-	& 0.000321 \\
\hline
2 &	128	& 0.166 & 1.9337349398 & 0.000166\\
\hline
4	& 128 &	0.106 &	3.0283018868 &	 0.000106 \\
\hline
6 & 128	& 0.089 & 3.606741573 &	0.000089 \\
\hline
8 &	128	& 0.079	& 4.0632911392 & 0.000079 \\
\hline
12 & 128 & 0.313 & 1.0255591054 & 0.000313 \\
\hline
16	& 128 & 0.26 & 1.2346153846 & 0.00026 \\
\hline

\end{tabular}
\caption{Messungen für 128-Bodys}
\label{tab:128}
\end{table}

 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
1	& 512 &	5.031 &	-	& 0.005031 \\\hline
2	& 512 &	2.558 &	1.9667709148 &	0.002558 \\\hline
4	& 512 &	1.365 &	3.6857142857 &	0.001365 \\\hline
6	& 512 &	1.16	  & 4.3370689655	 & 	0.00116 \\\hline
8	& 512 &	0.991 &	5.0766902119 &	0.000991 \\\hline
12	& 512 &	1.388 &	3.6246397695	 & 	0.001388 \\\hline
16	& 512 &	1.449 &	3.4720496894	 &	0.001449 \\\hline
\end{tabular}
\caption{Messungen für 512-Bodys}
\label{tab:512}
\end{table}

 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
1	& 1024 &	 19.949	& -	&				0.019949 \\\hline
2	& 1024 & 10.108 &	1.973585279	& 	0.010108 \\\hline
4	& 1024 & 5.251 &		3.7990858884	 &	0.005251 \\\hline
6	& 1024 &	 4.494 & 	4.4390298175	 &	0.004494 \\\hline
8	& 1024 &	 3.581 & 	5.570790282	 &	0.003581 \\\hline
12	& 1024 &	 4.718 & 	4.2282746927	 &	0.004718 \\\hline
16	& 1024 &	 4.56 &		4.3747807018	 &	0.00456  \\\hline
\end{tabular}
\caption{Messungen für 1024-Bodys}
\label{tab:1024}
\end{table}

 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
1	& 2048 &	 79.942	&	-			 &	0.079942 \\\hline
2	& 2048 &	 40.289	&	1.9842140535	 &	0.040289 \\\hline
4	& 2048 &	 20.789	&	3.8453990091	 &	0.020789 \\\hline
6	& 2048 &	 17.783	&	4.4954169713	 &	0.017783 \\\hline
8	& 2048 &	 13.823	&	5.7832597844	 &	0.013823 \\\hline
12	& 2048 &	 17.372	&	4.601772968	 &	0.017372 \\\hline
16	& 2048 &	 15.663 &	5.1038753751	 &	0.015663 \\\hline
\end{tabular}
\caption{Messungen für 2048-Bodys}
\label{tab:2048}
\end{table}

 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
1	& 4096 &		319.451 &		-		& 	0.319451 \\\hline
2	& 4096 &		160.759	&	1.987142244	&	0.160759 \\\hline
4	& 4096 &		82.659	&	3.8646850313	 &	0.082659 \\\hline
6	& 4096 &		70.263	&	4.5465038498	 &	0.070263 \\\hline
8	& 4096 &		54.479	&	5.8637456635	 &	0.054479 \\\hline
12	& 4096 &		60.437	&	5.2856859209	 &	0.060437 \\\hline
16	& 4096 &		58.262	&	5.4830077924 &	0.058262 \\\hline

\end{tabular}
\caption{Messungen für 4096-Bodys}
\label{tab:4096}
\end{table}

 \begin{table}[hc]
\begin{tabular}{|l|l|l|l|l|}
\hline
Threads & Bodys  & Laufzeit\begin{small} (sec.)\end{small}  & Speedup & Laufzeit/Iterationen  \\
\hline
\hline
1	& 8192 &	 1280.105 &	-			 &	1.280105 \\\hline
2	& 8192 &	 644.209 &	1.9870958028	 &	0.644209 \\\hline
4	& 8192 &	 330.196	 &	3.8768034743	 &	0.330196 \\\hline
6	& 8192 &	 275.115	 &	4.6529814805	 &	0.275115 \\\hline
8	& 8192 &	 218.278	 &	5.864562622	 &	0.218278 \\\hline
12	& 8192 &	 226.373	 &	5.6548484139	 &	0.226373 \\\hline
16	& 8192 &	 225.702	 &	5.6716599764	 &	0.225702 \\\hline

\end{tabular}
\caption{Messungen für 8192-Bodys}
\label{tab:8192}
\end{table}
 

\end{document}